package com.cw.jeeyt.dao.mapper.security;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.cw.jeeyt.dao.model.security.SecurityUserRoleDo;
import com.cw.lang.common.mapper.common.CommonMapper;

/**
 * 用户角色 dao数据库操作接口
 *
 * @author chenw
 * @version 1.0.0
 */
public interface SecurityUserRoleMapper extends CommonMapper<SecurityUserRoleDo> {

    /**
     * 修改用户角色
     *
     * @param userRole
     */
    void update(SecurityUserRoleDo userRole);

    /**
     * 根据主键查询用户角色
     *
     * @param id 主键id
     * @return 用户角色
     */
    SecurityUserRoleDo getById(String id);
    /**
     * 查询所有用户角色
     *
     * @return 用户角色集合
     */
    List<SecurityUserRoleDo> queryUserRoleList();

    /**
     * 分页查询用户角色
     *
     * @param userRole 查询条件
     * @return 用户角色集合
     */
    List<SecurityUserRoleDo> queryByPage(@Param("userRole") SecurityUserRoleDo userRole);

    /**
     * 根据用户id和角色id查询用户角色信息
     *
     * @param userId
     * @param roleId
     * @return
     * @throws Exception
     */
    SecurityUserRoleDo checkSecurityUserRole(@Param("userId") Long userId, @Param("roleId") Long roleId)
   ;

    /**
     * 根据用户id查询用户角色信息
     *
     * @param userId
     * @return
     * @throws Exception
     */
    List<SecurityUserRoleDo> queryUserRoleListByUserId(Long userId);

    /**
     * 根据用户ID删除用户角色信息
     *
     * @param userId
     */
    void deleteUserRoleByUserId(Long userId);

    /**
     * 根据用户ID和角色ID删除用户角色信息
     *
     * @param userRole
     */
    void deleteUserRoleByUserIdAndRoleId(SecurityUserRoleDo userRole);

}
